//package com.xspace.android.xafcommon.http.impl;
//
//import android.content.Context;
//import android.net.wifi.WifiInfo;
//import android.net.wifi.WifiManager;
//import android.telephony.TelephonyManager;
//import android.text.TextUtils;
//import android.widget.Toast;
//
//import com.xspace.android.xafcommon.been.AppInfoBean;
//import com.xspace.android.xafcommon.http.NetControl;
//import com.xspace.android.xafcommon.http.resp.UpgradeResp;
//import com.xspace.android.xafcommon.network.NetConstant;
//import com.xspace.android.xafcommon.network.message.AResponseMsg;
//import com.xspace.android.xafcommon.network.message.SendRequestListener;
//import com.xspace.android.xafcommon.util.BaseRProxy;
//import com.xspace.android.xafcommon.util.Constants;
//import com.xspace.android.xafcommon.util.LogUtil;
//import com.xspace.android.xafcommon.util.PreferencesUtils;
//import com.xspace.android.xafcommon.util.StringUtils;
//
//import java.io.BufferedReader;
//import java.io.FileReader;
//import java.io.IOException;
//import java.lang.reflect.Method;
//
//import static com.xspace.android.xafcommon.network.apn.ApnUtil.context;
//
//
///**
// * @version V1.0.0
// * @ClassName: UpdateManage
// * @author:qbluo
// * @Date：2013-7-19
// * @Description: TODO
// */
//public class UpgradeImpl implements IUpgrade, SendRequestListener {
//    private NetControl mNetControl;
//    private Context mContext;
//    IUpdateRequest mCallBack;
//    //flag表示是否为用户主动点击的检测更新按钮,如果是用户手动点击的更新,则需要弹出吐司提醒用户信息,否则为自动检测的更新,不必提醒用户
//    boolean flag = false;
//
//    public UpgradeImpl(Context mContext) {
//        this.mContext = mContext;
//        mNetControl = new NetControl(this);
//    }
//
//    @Override
//    public void updateCheck(boolean flag, String user_id, String departmentID, String app_id, String area,
//                            IUpdateRequest mCallBack) {
//        this.mCallBack = mCallBack;
//        //只有在用户手动点击了检测更新才会为true
//        this.flag = flag;
//        try {
//
//            TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
//            String phone = Tools.getCurrentAccountInfo(mContext).mobile;
//
//            mNetControl.sendUpdate(user_id, departmentID, phone, app_id, tm.getDeviceId(), getBaseBand(),
//                    android.os.Build.VERSION.RELEASE, getBRAND() + " " + getMODEL(), getMacAddress(), getCpuInfo(),
//                    MyInfoUtil.getAppInfo(mContext).app_version, area);
//        } catch (Exception e) {
////			MobclickAgent.reportError(MyApplication.mContext, e);
//            e.printStackTrace();
//        }
//
//    }
//
//    public static String getBRAND() {
//        try {
//            return android.os.Build.BRAND;
//        } catch (Exception e) {
//            e.printStackTrace();
//            return "品牌未获取到";
//        }
//    }
//
//    public static String getMODEL() {
//        try {
//            return android.os.Build.MODEL;
//        } catch (Exception e) {
//            e.printStackTrace();
//            return "型号未获取到";
//        }
//    }
//
//    public static String getCpuInfo() {
//        String str1 = "/proc/cpuinfo";
//        String str2 = "";
//        String[] cpuInfo = {"", ""};
//        String[] arrayOfString;
//        try {
//            FileReader fr = new FileReader(str1);
//            BufferedReader localBufferedReader = new BufferedReader(fr, 8192);
//            str2 = localBufferedReader.readLine();
//            arrayOfString = str2.split("\\s+");
//            for (int i = 2; i < arrayOfString.length; i++) {
//                cpuInfo[0] = cpuInfo[0] + arrayOfString[i] + " ";
//            }
//            str2 = localBufferedReader.readLine();
//            arrayOfString = str2.split("\\s+");
//            cpuInfo[1] += arrayOfString[2];
//            localBufferedReader.close();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        return cpuInfo[0] + cpuInfo[1];
//    }
//
//    private String getMacAddress() {
//        String result = "";
//        try {
//            WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
//            WifiInfo wifiInfo = wifiManager.getConnectionInfo();
//            result = wifiInfo.getMacAddress();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return result;
//    }
//
//    public String getBaseBand() {
//        String result = "";
//        try {
//            Class cl = Class.forName("android.os.SystemProperties");
//            Object invoker = cl.newInstance();
//            Method m = cl.getMethod("get", new Class[]{String.class, String.class});
//            result = (String) m.invoke(invoker, new Object[]{"gsm.version.baseband", "no message"});
//
//        } catch (Exception e) {
//        }
//        return result;
//
//    }
//
//    @Override
//    public void requestResult(int result, AResponseMsg object) {
//        LogUtil.d("UpgradeImpl", "wubaojie>>>requestResult: " + result + " object.msgType:" + object.msgType);
//        if (NetControl.MSGTYPE_UPDATE.equals(object.msgType)) {
//            UpgradeResp resp = (UpgradeResp) object;
//            if (result == NetConstant.TaskStatus.SUCCESS && resp.code.equals("0")) {
//                //检测新版本成功
//                AppInfoBean appInfoBean = resp.response;
//                if (StringUtils.isEmpty(resp.response.tag))//没有设置强制升级的标签
//                    resp.response.tag = "0";//默认不强制升级
//                if (!StringUtils.isEmpty(resp.response.app_id)) { //判断appid是否为空
//                    //与本地appid判断,不知具体意义,目前是始终不等 TODO,后续了解具体作用再做更改
//                    if (!appInfoBean.app_id.equalsIgnoreCase(AppCache.getAppConfigBean(mContext).appID)) {
//                        if (TextUtils.isEmpty(appInfoBean.version)) {
//                            appInfoBean.version = "0";
//                        }
//                        //对比当前版本号和新检测的版本号,确定是否有新版本
//                        Boolean findNew = Double.parseDouble((String) PreferencesUtils.getPfValue(context, Constants
//                                .ACCOUNT_APP_VERSION, null)) < Double.parseDouble(appInfoBean.version);
//                        PreferencesUtils.SaveBooleanData("has_new_version", findNew);//存储是否发现了新版本,用于在个人中中心显示
//                        if (findNew) { //发现新版本执行结果
//                            mCallBack.onResult(appInfoBean);
//                        } else {
//                            if (flag) {
//                                mCallBack.onNewest();
//                                Toast.makeText(mContext, BaseRProxy.msg_update_new_date_over, Toast.LENGTH_SHORT)
//                                        .show();
//                            }
//                        }
//                    } else {
//                        PreferencesUtils.SaveBooleanData("has_new_version", false);
//                        if (flag) {
//                            mCallBack.onNewest();
//                            Toast.makeText(mContext, BaseRProxy.msg_update_new_date_over, Toast.LENGTH_SHORT).show();
//                        }
//                    }
//                } else { //appid为空,表示服务端没有返回数据,为正常现象,表示没有新版本
//                    PreferencesUtils.SaveBooleanData("has_new_version", false);
//                    if (flag) {
//                        mCallBack.onNewest();
//                        Toast.makeText(mContext, BaseRProxy.msg_update_new_date_over, Toast.LENGTH_SHORT).show();
//                    }
//                }
//            } else {//检测新版本失败,网络错误
//                if (flag) {
//                    mCallBack.onError();
//                    Toast.makeText(mContext, BaseRProxy.network_fail, Toast.LENGTH_SHORT).show();
//                }
//            }
//
//
////            Log.v("cover", "resp.code:" + resp.code);
////            if (result == NetConstant.TaskStatus.SUCCESS && resp.code.equals("0")) {
////                LogUtils.e("wubaojie-->" + resp.result.toString());
////                if (resp.result == null) {
////                    //已是最新
////                    if (flag) {
////                        Toast.makeText(mContext, BaseRProxy.msg_update_new_date_over, Toast.LENGTH_SHORT).show();
////                    }
////                    mCallBack.onResult(null, null, "0");
////                    return;
////                }
////                if (resp != null && resp.result != null && StringUtils.isEmpty(resp.result.tag))
////                    resp.result.tag = "0";
////                if (resp.result != null && !StringUtils.isEmpty(resp.result.app_id)) {
////                    //Log.v("cover", "resp.result.app_id:"+resp.result.app_id+" localid:" +AppCache
//// .getAppConfigBean(mContext).appID);
////                    if (!resp.result.app_id.equalsIgnoreCase(AppCache.getAppConfigBean(mContext).appID)) {
////                        mCallBack.onResult(resp.result.note, resp.result.url, resp.result.tag);
////                    } else {
////                        if (flag) {
////                            Toast.makeText(mContext, BaseRProxy.msg_update_new_date_over, Toast.LENGTH_SHORT).show();
////                        }
////                    }
////                    mCallBack.onResult(null, null, resp.result.tag);
////                } else {
////                    if (flag) {
////                        Toast.makeText(mContext, BaseRProxy.msg_update_new_date_over, Toast.LENGTH_SHORT).show();
////                    }
////                    mCallBack.onResult(null, null, "0");
////                }
////
////            } else {
////                if (flag) {
////                    Toast.makeText(mContext, BaseRProxy.network_fail, Toast.LENGTH_SHORT).show();
////                }
////                mCallBack.onResult(null, null, "0");
////            }
//        }
//    }
//
//    /**
//     * 版本升级的回调接口
//     */
//    public interface IUpdateRequest {
//        //有最新版本的回调
//        void onResult(AppInfoBean appInfoBean);
//
//        void onNewest();
//
//        void onError();
//    }
//
//    @Override
//    public void offline(String arg0) {
//        if (flag) {
//            Toast.makeText(mContext, BaseRProxy.network_fail, Toast.LENGTH_SHORT).show();
//        }
//        mCallBack.onError();
//    }
//
//}
